"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/6/3 10:47
@Description : 设计模式
装饰器的定义方式
 1. 函数    闭包形式
 2. 类
     __init__   初始化时自动调用  参数时目标函数
     __call__   自动调用   调用目标函数  实现功能增强

"""

class ClassDecorators:
    def __init__(self, func):
        self.__func = func

    # 类作为装饰器使用时 会自动调用   增强业务编写位置
    def __call__(self, *args, **kwargs):
        print('-------call--------')
        # 基础函数的执行
        result = self.__func(*args, **kwargs)
        return result


@ClassDecorators  # sum_num 参数  -> __init__
def sum_num(a, b):
    return a + b


if __name__ == '__main__':
    result = sum_num(1, 2)
    print(result)
